#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPen>
#include <QPixmap>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::paintEvent(QPaintEvent *event)
{
    //绘图工作在此处进行
    //QPaintEvent *event参数就是QPaintEvent事件对象本体

    //创建一个绘图者对象
    QPainter painter(this);
    //画一个线段
    painter.drawLine(20,20,100,20);
    //画一个矩形
    painter.drawRect(20,30,200,100);
    //画圆形
    painter.drawEllipse(100,200,200,200);
    //绘制文本
    //设置字体和字号
    QFont font("微软雅黑",24);
    //将字体字号设置进入绘图中，绘制文本就按照这个字体字号对象进行设置
    painter.setFont(font);
    //绘制文本
    painter.drawText(0,400,"Hello");

    //利用画笔绘制矩形
    //创建画笔对象
    QPen pen;
    //设置画笔的颜色
    pen.setColor(QColor(255,0,0));
    //设置线条的粗细宽度
    pen.setWidth(6);
    //设置线条的风格
    pen.setStyle(Qt::DashLine);
    //让绘画者对象应用画笔
    painter.setPen(pen);

    //创建画刷对象
    QBrush brush;
    //设置画刷的填充颜色
    brush.setColor(QColor(0,255,0));
    //设置画刷风格
    brush.setStyle(Qt::SolidPattern);
    //将画刷设置给绘画者
    painter.setBrush(brush);

    //拿着画笔画矩形
    painter.drawRect(200,50,200,100);

    //创建QPixmap绘制图片对象
    QPixmap pixmap(":/image.jpg");
    //将这个绘制图片对象设置给绘图者类
    //painter.drawPixmap(300,300,pixmap);//不缩放版本
    painter.drawPixmap(300,300,200,200,pixmap);//缩放版本

    //旋转绘图者/坐标轴180°
    painter.rotate(180);
    //平移坐标轴
    painter.translate(-800,-600);
    painter.drawPixmap(100,100,300,300,pixmap);//缩放版本
}

